SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TTATRI_SIST_U01]
/*------------------------------------------------------*/
/*---- Empresa     : OFISIS S.A.                    ----*/
/*---- Cliente     : OFISIS S.A.                    ----*/
/*---- Sistema     : Seguridad                      ----*/
/*---- Módulo      : Seguridad                      ----*/
/*---- Programa    : Cambio de Número de Paso       ----*/
/*---- Script      : SP_TTATRI_SIST_U01             ----*/
/*---- Nombre SP   : SP_TTATRI_SIST_U01             ----*/
/*---- Desarrollado por : HZL                       ----*/
/*---- Fecha Creación   : 17/09/2005                ----*/
/*---- Base de Datos    : SQL Server                ----*/
/*---- Versión          : 7.0                       ----*/
/*---- Invoca a SP      :                           ----*/
/*------------------------------------------------------*/
/*---- Modificado 1 por     :  Carla Choccecahua    ----*/
/*---- Fecha Modificación   :  12/06/09             ----*/
/*---- Detalle Modificación :  Se agregó Drop table ----*/
/*---- a la tabla temporal #TWATRI_SIST_I01_1       ----*/
/*---- También Begin Tran SP_TTATRI_SIST_U01 y      ----*/
/*---- If @@ERROR  despues de las sentencias sql    ----*/
/*------------------------------------------------------*/
/*---- Comentarios :                                ----*/
/*------------------------------------------------------*/
/*---- Drop Proc SP_TTATRI_SIST_U01                 ----*/
/*---- Grant All On SP_TTATRI_SIST_U01 To Public    ----*/
/*---- SP_TTATRI_SIST_U01 'OFIPLAN', 'PLPL0001',
       'FPLPTBH', 1, 3, 1                           ----*/
/*------------------------------------------------------*/
 @ISCO_SIST TD_VC_008,        
 @ISCO_MODU TD_VC_008,        
 @ISCO_MENU TD_VC_020,        
 @INNU_CORR_ATRI TD_IN_001,        
 @INNU_ORDE_ACTU TD_IN_001,        
 @INNU_ORDE_NUEV TD_IN_001,      
 @ISCO_USUA TD_VC_008      
      
 As        
  Declare       
   @VNNU_ORDE_AUXI TD_IN_001,        
   @CNNU_ORDE      TD_IN_001,       
   @CSCO_ATRI      TD_VC_020,       
   @CNNU_ATRI      TD_IN_001,       
   @CSTI_DATO_FECH TD_VC_003,       
   @CSCO_TBLS      TD_VC_020,       
   @CSCO_TBLS_APOY TD_VC_020,       
   @CSCO_ATR1      TD_VC_020,       
   @CSCO_ATR2      TD_VC_020,       
   @CSDE_OBSE      TD_VC_200,      
   @VNNU_ORDE      TD_IN_001,         
   @VSCO_ATRI      TD_VC_020,       
   @VNNU_ATRI      TD_IN_001,       
   @VSTI_DATO_FECH TD_VC_003,       
   @VSCO_TBLS      TD_VC_020,       
   @VSCO_TBLS_APOY TD_VC_020,       
   @VSCO_ATR1      TD_VC_020,       
   @VSCO_ATR2      TD_VC_020,       
   @VSDE_OBSE      TD_VC_200      
        
      
 Create Table #TWATRI_SIST_I01_1       
 ( CO_SIST varchar(08) null,      
   CO_MODU varchar(08) null,      
   CO_MENU varchar(20) null,      
   CO_ATRI varchar(20) null,      
   NU_ORDE int     null,       
   NU_ATRI int     null,       
   NU_CORR_ATRI int     null,       
   TI_DATO_FECH varchar(03) null,       
   CO_TBLS varchar(20) null,        
   CO_TBLS_APOY varchar(20) null,       
   CO_ATR1 varchar(20) null,       
   CO_ATR2 varchar(20) null,       
   DE_OBSE varchar(200) null)      
      
      
 Begin Tran SP_TTATRI_SIST_U01

 Declare  CU_TTATRI_SIST_I01_1 cursor for        
 Select   NU_ORDE, CO_ATRI, NU_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE       
 From TTATRI_SIST        
 Where CO_SIST = @ISCO_SIST       
 And   CO_MODU = @ISCO_MODU       
 And   CO_MENU = @ISCO_MENU       
 And   NU_CORR_ATRI = @INNU_CORR_ATRI        
 And   NU_ORDE  != @INNU_ORDE_ACTU        
 Order by NU_ORDE        
      
  Select         
   @VNNU_ORDE = NU_ORDE,         
   @VSCO_ATRI = CO_ATRI,       
   @VNNU_ATRI = NU_ATRI,       
   @VSTI_DATO_FECH = TI_DATO_FECH,       
   @VSCO_TBLS = CO_TBLS,       
   @VSCO_TBLS_APOY = CO_TBLS_APOY,       
   @VSCO_ATR1 = CO_ATR1,       
   @VSCO_ATR2 = CO_ATR2,       
   @VSDE_OBSE = DE_OBSE      
 From TTATRI_SIST        
 Where  CO_SIST = @ISCO_SIST        
 And    CO_MODU = @ISCO_MODU        
 And    CO_MENU = @ISCO_MENU        
 And    NU_CORR_ATRI = @INNU_CORR_ATRI        
 And    NU_ORDE  = @INNU_ORDE_ACTU        
    
Open CU_TTATRI_SIST_I01_1        
 Fetch CU_TTATRI_SIST_I01_1 into @CNNU_ORDE, @CSCO_ATRI, @CNNU_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE       
 While @@Fetch_status = 0        
 Begin -- WHILE --        
  If @INNU_ORDE_ACTU > @INNU_ORDE_NUEV        
   Begin  -- 1er IF despues del while --        
    If @CNNU_ORDE < @INNU_ORDE_NUEV        
     BEGIN      
     insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)      
     values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU, @CSCO_ATRI,@CNNU_ORDE, @CNNU_ATRI, @INNU_CORR_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE)        
      
    END      
    Else         
     Begin        
      If @CNNU_ORDE =  @INNU_ORDE_NUEV        
       Begin        
       insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
       values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU,@VSCO_ATRI, @CNNU_ORDE, @VNNU_ATRI, @INNU_CORR_ATRI, @VSTI_DATO_FECH, @VSCO_TBLS, @VSCO_TBLS_APOY, @VSCO_ATR1, @VSCO_ATR2, @VSDE_OBSE)        
    
       select @VNNU_ORDE_AUXI = @CNNU_ORDE+1      
        
       insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
       values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU, @CSCO_ATRI,@VNNU_ORDE_AUXI, @CNNU_ATRI, @INNU_CORR_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE)        
      
       End        
     Else        
      Begin              
      
       If @CNNU_ORDE > @INNU_ORDE_ACTU        
        insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
        values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU, @CSCO_ATRI,@CNNU_ORDE, @CNNU_ATRI, @INNU_CORR_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE)        
      
       Else               
        Begin        
       
       select @VNNU_ORDE_AUXI = @CNNU_ORDE +1      
        
       insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
       values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU, @CSCO_ATRI,@VNNU_ORDE_AUXI, @CNNU_ATRI, @INNU_CORR_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE)        
     
        End        
      End        
    End        
   End -- 1er IF despues del while --        
  Else -- 1er IF despues del while --        
   Begin -- 1 --        
    If @CNNU_ORDE < @INNU_ORDE_ACTU        
      insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
      values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU, @CSCO_ATRI,@CNNU_ORDE, @CNNU_ATRI, @INNU_CORR_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE)        
    Else         
     -- SI PASO ES MAYOR A PASO NUEVO         
      If @CNNU_ORDE <  @INNU_ORDE_NUEV        
       Begin -- 2 --        
       select @VNNU_ORDE_AUXI = @CNNU_ORDE-1      
        
      insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
      values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU, @CSCO_ATRI,@VNNU_ORDE_AUXI, @CNNU_ATRI, @INNU_CORR_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE)        
      
       End -- 2 --        
      Else        
       If @CNNU_ORDE = @INNU_ORDE_NUEV        
       Begin -- 3 --        
        select @VNNU_ORDE_AUXI = @CNNU_ORDE-1      
        
        insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
        values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU, @CSCO_ATRI,@VNNU_ORDE_AUXI, @CNNU_ATRI, @INNU_CORR_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE)        
      
        insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
        values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU,@VSCO_ATRI, @CNNU_ORDE, @VNNU_ATRI, @INNU_CORR_ATRI, @VSTI_DATO_FECH, @VSCO_TBLS, @VSCO_TBLS_APOY, @VSCO_ATR1, @VSCO_ATR2, @VSDE_OBSE)        
      
      
       End -- 3 --        
      Else        
            
       insert into #TWATRI_SIST_I01_1 (CO_SIST, CO_MODU, CO_MENU, CO_ATRI, NU_ORDE, NU_ATRI, NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS, CO_TBLS_APOY, CO_ATR1, CO_ATR2, DE_OBSE)        
       values(@ISCO_SIST, @ISCO_MODU,@ISCO_MENU, @CSCO_ATRI,@CNNU_ORDE, @CNNU_ATRI, @INNU_CORR_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE)        
      
        
   End -- 1 --        
        
 fetch CU_TTATRI_SIST_I01_1 into @CNNU_ORDE, @CSCO_ATRI, @CNNU_ATRI, @CSTI_DATO_FECH, @CSCO_TBLS, @CSCO_TBLS_APOY, @CSCO_ATR1, @CSCO_ATR2, @CSDE_OBSE       
 End  -- WHILE --        
 close CU_TTATRI_SIST_I01_1        
 deallocate CU_TTATRI_SIST_I01_1        
      
      
 -- elimino detalle del concepto seleccionado --        
    
    
Delete From  TTATRI_SIST    
Where CO_SIST = @ISCO_SIST    
AND CO_MODU = @ISCO_MODU    
AND CO_MENU = @ISCO_MENU    
AND NU_CORR_ATRI = @INNU_CORR_ATRI

     If @@ERROR <> 0    
      Begin     
        Rollback Transaction SP_TTATRI_SIST_U01
        Return    
      End        
      
 Insert into TTATRI_SIST
 (CO_SIST,      CO_MODU,      CO_MENU,      CO_ATRI,      NU_ORDE,
  NU_ATRI,      NU_CORR_ATRI, TI_DATO_FECH, CO_TBLS,      CO_TBLS_APOY,
  CO_ATR1,      CO_ATR2,      DE_OBSE,      CO_USUA_CREA, FE_USUA_CREA, 
  CO_USUA_MODI, FE_USUA_MODI)        
  Select 
  CO_SIST,       CO_MODU,     CO_MENU,       CO_ATRI,      NU_ORDE,
  NU_ATRI,       NU_CORR_ATRI,TI_DATO_FECH,  CO_TBLS,      CO_TBLS_APOY,
  CO_ATR1,       CO_ATR2,     DE_OBSE,       @ISCO_USUA,   GETDATE(),
  @ISCO_USUA , GETDATE() 
  From  #TWATRI_SIST_I01_1 

     If @@ERROR <> 0    
      Begin     
        Rollback Transaction SP_TTATRI_SIST_U01
        Return    
      End        
             
    
 Drop table #TWATRI_SIST_I01_1

Commit Transaction SP_TTATRI_SIST_U01       
Return        

/*------------------------ Fin ------------------------*/
GO
